NGINX,發(fā)音為“engine-ex”,于 2004 年 10 月正式發(fā)布。該軟件的創(chuàng)建者 Igor Sysoev 在 2002 年開始了他的項(xiàng)目,試圖解決 C10k問題。C10k是同時(shí)管理一萬個(gè)連接的挑戰(zhàn)。
今天,Web 服務(wù)器必須處理更多的連接。出于這個(gè)原因,NGINX 提供了一個(gè)事件驅(qū)動(dòng)的異步架構(gòu)。此功能使 NGINX 成為速度和可擴(kuò)展性最可靠的服務(wù)器之一。
由于其超強(qiáng)的處理大量連接的能力和速度,許多高流量網(wǎng)站一直在使用 NGINX 的服務(wù)。其中一些在線巨頭包括 Google、Netflix、Adobe、Cloudflare、WordPress.com 等等。
什么是 NGINX?
NGINX 是一種開源 Web 服務(wù)器軟件,可用作IMAP、POP3 和 SMTP 的反向代理、HTTP 負(fù)載平衡器和電子郵件代理。
NGINX 是如何工作的?
在進(jìn)一步了解 NGINX 之前,讓我們先了解一下 Web 服務(wù)器的工作原理。當(dāng)有人請(qǐng)求打開網(wǎng)頁時(shí),瀏覽器會(huì)聯(lián)系該網(wǎng)站的網(wǎng)絡(luò)服務(wù)器。然后,Web 服務(wù)器為頁面查找請(qǐng)求的文件并將其發(fā)送到瀏覽器。這只是最簡單的一種請(qǐng)求。
上面的示例也被視為單線程。傳統(tǒng)的 Web 服務(wù)器為每個(gè)請(qǐng)求創(chuàng)建一個(gè)線程,但 NGINX 不是這樣工作的。如前所述,NGINX 以異步、事件驅(qū)動(dòng)的架構(gòu)運(yùn)行。這意味著類似的線程在一個(gè)工作進(jìn)程下管理,每個(gè)工作進(jìn)程包含更小的單元,稱為工作連接。然后整個(gè)單元負(fù)責(zé)處理并發(fā)請(qǐng)求。工作連接將請(qǐng)求傳遞給工作進(jìn)程,該工作進(jìn)程也會(huì)將請(qǐng)求發(fā)送給主進(jìn)程。最后,主進(jìn)程提供這些請(qǐng)求的結(jié)果。
這聽起來很簡單,但一個(gè)工作連接可以處理多達(dá) 1024 個(gè)類似的請(qǐng)求。正因?yàn)槿绱耍琋GINX 可以毫無困難地處理數(shù)千個(gè)請(qǐng)求。這也是 NGINX 成為最快的 Web 服務(wù)器的原因,它非常適合電子商務(wù)、搜索引擎和云存儲(chǔ)等高流量網(wǎng)站。
NGINX 與阿帕奇
Apache 是另一種流行的網(wǎng)絡(luò)服務(wù)器,也是 NGINX 的主要競爭對(duì)手之一。它自 90 年代以來一直存在,并且擁有龐大的用戶社區(qū)。如果您對(duì)哪種 Web 服務(wù)器最適合您的需求感到好奇,請(qǐng)查看 NGINX 和 Apache 之間的簡短且信息豐富的比較。
- 操作系統(tǒng)支持
兼容性是您在選擇軟件時(shí)應(yīng)該考慮的小細(xì)節(jié)之一。NGINX 和 Apache 都可以運(yùn)行在許多支持 Unix 系統(tǒng)的操作系統(tǒng)上。不幸的是,NGINX 在 Windows 上的性能不如在其他平臺(tái)上好。 - 用戶支持
用戶,從新手到專業(yè)人士,總是需要一個(gè)好的社區(qū)來幫助他們解決問題。雖然 NGINX 和 Apache 都有郵件支持和 Stack Overflow 論壇,但 Apache 缺乏其公司 Apache Foundation 的支持。 - 性能
NGINX 可以同時(shí)運(yùn)行 1000 個(gè)靜態(tài)內(nèi)容連接,速度是 Apache 的兩倍,并且使用的內(nèi)存更少。然而,當(dāng)比較它們在運(yùn)行動(dòng)態(tài)內(nèi)容時(shí)的性能時(shí),兩者具有相同的速度。對(duì)于那些擁有更多靜態(tài)網(wǎng)站的人來說,NGINX 是更好的選擇。
結(jié)論
NGINX 是一種流行的開源 Web 服務(wù)器,它還充當(dāng)電子郵件代理、反向代理和負(fù)載平衡器。該軟件的結(jié)構(gòu)是異步和事件驅(qū)動(dòng)的;這樣可以同時(shí)處理許多請(qǐng)求。NGINX 也具有高度可擴(kuò)展性,這意味著它的服務(wù)隨著客戶流量的增長而增長。NGINX 和 Apache 確實(shí)是市場上最受歡迎的兩種 Web 服務(wù)器。